package com.sky.dto;
/**
 * 1. 当前模块名：sky-pojo
 *    模块作用：子模块，存放实体类（Entity）、视图对象（VO）、数据传输对象（DTO）等
 * 2. 当前包名：com.sky.dto
 *    包作用：存放 DTO（Data Transfer Object），用于系统各层之间传递数据，解耦实体类
 * 3. 当前类名：OrdersPageQueryDTO
 *    类作用：用于封装订单分页查询的参数条件
 */
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * OrdersPageQueryDTO：封装订单分页查询条件的数据传输对象
 * 常用于管理端订单模块的条件查询接口（如：订单号、状态、下单时间段、手机号等）
 */
@Data
public class OrdersPageQueryDTO implements Serializable {

    private int page;

    private int pageSize;

    private String number;// 订单编号（支持模糊查询）

    private  String phone;

    private Integer status; // 订单状态（如：1待付款，2待派送，3已派送，4已完成，5已取消等）

    // 起始时间（用于按下单时间段筛选订单，注意格式匹配前端传参）
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")// Spring注解：用于将字符串转为LocalDateTime
    private LocalDateTime beginTime;

    // 截止时间（与起始时间配合使用，形成时间区间）
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;

    // 用户ID（一般在用户端用于查询自己的订单，服务端用于精确过滤）
    private Long userId;

}
/**
 * 仿写：
 * UserOrderQueryDTO：用于用户端查询个人订单历史的分页条件封装类
 * @Data
 * public class UserOrderQueryDTO implements Serializable {
 *
 *     // 当前页码
 *     private int page;
 *
 *     // 每页记录数
 *     private int pageSize;
 *
 *     // 用户ID（从登录上下文中获取）
 *     private Long userId;
 *
 *     // 订单状态（如：1待付款、2派送中、4已完成等，可选）
 *     private Integer status;
 * }
 */